#pragma once
#ifndef __SHADERBIND_H__
#define __SHADERBIND_H__

#include "Utility.h"

#include "../util/D3DCommon.h"
#include "../util/PreDeclare.h"

namespace WindGE
{
	class WIND_CORE_API ShaderBind
	{
	public:
		ShaderBind();
		~ShaderBind();

		void create(ID3D11ShaderReflection* shaderReflection, const D3D11_SHADER_INPUT_BIND_DESC& inputBindDesc);

		inline unsigned int bind_point() const { return input_bind_desc_.BindPoint; }
		inline unsigned int bind_count() const { return input_bind_desc_.BindCount; }

	private:
		ID3D11ShaderReflection*			shader_reflection_;
		D3D11_SHADER_INPUT_BIND_DESC	input_bind_desc_;
	};

}//end namespace WindGE

#endif	//__SHADERBIND_H__
